1. Field of the Invention
The present invention relates to the field of computer application programs, and more particularly to systems and methods for dynamically changing an application program in response to changes in requirements for the application.
2. Description of the Related Art
A developer may desire to update a computer application as use of the application evolves. The application's requirements may change as the use of the application evolves. The applications may have to be modified to reflect the change in requirements. For example, a business may expand, and the business may desire to add a product line. The business may desire to access details of the new product line through the business's enterprise resource planning applications.
The cost of implementing the changes may be significant. Developers may have to perform manually modify the application. Tight coupling of data and logic in the application's design may hinder manual modification efforts. The user and/or administrator of the application may have to change properties of the application. However, settable properties may have a very limited impact on functionality. The application may become obsolete if the changes in requirements are significant.
Typical software design paradigms may not allow an application to change over time. The model-view-controller (MVC) architecture is an example of such a typical software design paradigm. The MVC architecture is a software design paradigm facilitating code re-use. The MVC architecture may include separating an application into three functional modules: a model module, a view module, and a controller module. The model module may perform transformations on data. The view module may include presentation logic for displaying data and may query the model module to obtain the data. The controller module may include the details of user interface interaction. The controller module and the view module may access each other's methods. However, the modules of the MVC architecture may remain dependent on data representation and business logic. Thus, the cost of implementing changes in enterprise data representation and/or business logic may remain significant.
Typical software design paradigms may not separate applications into static software components and dynamic software components. If application requirements change, such applications may require modifications. The modifications may consume significant resources.